import { defineStore } from 'pinia'
import exampleData from 'simple-mind-map/example/exampleData'
import { storeLocalConfig } from '@/api'
import { useDark } from '@vueuse/core'
const isDark = useDark()
export const useMindStore = defineStore('useMindStore', {
  state() {
    return {
      mindMapData: null, // 思维导图数据
      isHandleLocalFile: false, // 是否操作的是本地文件
      localConfig: {
        // 本地配置
        isZenMode: false, // 是否是禅模式
        // 是否开启节点富文本
        openNodeRichText: true,
        // 鼠标行为
        useLeftKeySelectionRightKeyDrag: false,
        // 是否显示滚动条
        isShowScrollbar: false,
        // 是否开启手绘风格
        isUseHandDrawnLikeStyle: false
      },
      activeSidebar: '', // 当前显示的侧边栏
      isDark: isDark.value, // 是否是暗黑模式
      isOutlineEdit: false, // 是否是大纲编辑模式
      isReadonly: false // 是否只读
    }
  },
  getters:{
    themeDOrL:(state)=>state.isDark ? 'light' : 'dark'
  },
  actions:{
    // 设置思维导图数据
    setMindMapData(data) {
      this.mindMapData = data
    },

    // 设置操作本地文件标志位
    setIsHandleLocalFile( data) {
      this.isHandleLocalFile = data
    },

    // 设置本地配置
    setLocalConfig( data) {
     this.localConfig = {
        ...this.localConfig,
        ...data
      }
      storeLocalConfig(this.localConfig)
    },

    // 设置当前显示的侧边栏
    setActiveSidebar( data) {
      this.activeSidebar = data
    },

    // 设置暗黑模式
    setIsDark(data) {
      this.isDark = data
      isDark.value = data
    },

    // 设置大纲编辑模式
    setIsOutlineEdit( data) {
      this.isOutlineEdit = data
    },

    // 设置是否只读
    setIsReadonly( data) {
      this.isReadonly = data
    },
    // 设置初始思维导图数据
    getUserMindMapData() {
      try {
        let { data } = {
          data: {
            data: {
              mindMapData: exampleData
            }
          }
        }
        this.setMindMapData(data.data)
      } catch (error) {
        console.log(error)
      }
    }
  }

})
